package com.supermarket.manage.common.dto.stock.response;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;

/**
 * @author Faxon
 * @version 1.0
 * @date 2020-03-17 15:44
 **/
@Data
@ApiModel("StockProdDto:盘点商品信息对象")
public class StockProdDto implements Serializable {

    private static final long serialVersionUID = 6449497759567567806L;

    /**
     * 主键id
     */
    @ApiModelProperty(value = "主键id")
    private String sid;

    /**
     * 盘点单id
     */
    @ApiModelProperty(value = "盘点单id")
    private String stockingId;

    /**
     * 商品id
     */
    @ApiModelProperty(value = "商品id")
    @NotBlank(message = "商品id不能为空")
    private String pid;

    /**
     * 原商品数量
     */
    @ApiModelProperty(value = "原商品数量")
    @NotNull(message = "原商品数量不能为空")
    private BigDecimal pnumber;

    /**
     * 盘点数量
     */
    @ApiModelProperty(value = "盘点数量")
    @NotNull(message = "盘点数量不能为空")
    private BigDecimal snumber;

    /**
     * 小计
     */
    @ApiModelProperty(value = "小计 = 商品成本价*（盘点数量-原商品数量）")
    @NotNull(message = "小计不能为空")
    private BigDecimal subtotal;

    /**
     * 是否置灰
     */
    @ApiModelProperty(value = "是否置灰(已添加过的商品不能再次操作，为true则置灰)")
    private Boolean gray;

    //--------------------------------

    /**
     * 商品名称
     */
    @ApiModelProperty(value = "商品名称")
    @NotBlank(message = "商品名称不能为空")
    private String pname;

    /**
     * 商品单位名称
     */
    @ApiModelProperty(value = "商品单位名称")
    @NotBlank(message = "商品单位名称不能为空")
    private String unitName;

    /**
     * 商品图片地址
     */
    @ApiModelProperty(value = "商品图片地址")
    @NotBlank(message = "商品图片地址不能为空")
    private String pic;

    /**
     * 成本价
     */
    @ApiModelProperty(value = "成本价")
    private BigDecimal costPrice;

    /**
     * 一级分类名称
     */
    @ApiModelProperty(value = "一级分类名称")
    @NotBlank(message = "一级分类名称不能为空")
    private String firstCname;

    /**
     * 二级分类名称
     */
    @ApiModelProperty(value = "二级分类名称")
    private String secondCname;

    /**
     * 三级分类名称
     */
    @ApiModelProperty(value = "三级分类名称")
    private String thirdCname;
}
